#include <signal.h>
#include <errno.h>

int sigdelset(sigset_t *set, int sig)
{
    unsigned s = sig-1;
    if (s >= _NSIG-1 || sig-32U < 3) {
        errno = EINVAL;
        return -1;
    }
    set->__bits[s/8/sizeof *set->__bits] &=~(1UL<<(s&8*sizeof *set->__bits-1));
    return 0;
}
